
//
// 120328 - AH - Created.
//

package org.soekrat.server.serialization;

import java.io.Serializable;

/**
 * <p>
 *   Parameter name and value used by objects that serialize String/String
 *   parameters. 
 * </p>
 * @author Arne Halvorsen (AH)
 * @author Laetitia Le Chatton (LLC)
 */
public final class ParameterSerializable implements Serializable 
{
  private static final long serialVersionUID=-8885359195547221055L;

  String name=null;
  
  String value=null;
  
  /**
   * <p>
   *   Constructor.
   * </p>
   */
  public ParameterSerializable(){}

  /**
   * <p>
   *   Constructor.
   * </p>
   * @param name  Parameter name.
   * @param value Parameter value;
   */
  public ParameterSerializable(String name, String value) 
  {
    this.name=name;
    this.value=value;
  }
  
  /**
   * <p>
   *   Gets parameter name.
   * </p>
   * @return Name.
   */
  public String name(){ return name; }
  
  /**
   * <p>
   *   Sets parameter name.
   * </p>
   * @param name Parameter name or {@code null} if to clear.
   * @return {@code this}.
   */
  public ParameterSerializable name(String name)
  { 
    this.name=name;  
    return this; 
  }
  
  /**
   * <p>
   *   Gets parameter value.
   * </p>
   * @return Value or {@code null} if does not have.
   */
  public String value(){ return value; }
  
  /**
   * <p>
   *   Sets parameter value.
   * </p>
   * @param name Parameter value or {@code null} if to clear.
   * @return {@code this}.
   */
  public ParameterSerializable value(String value)
  { 
    this.value=value; 
    return this; 
  }
  
}
